$(document).ready(function () {
    Common.qxGnan();
    GetDlJgbm();
    initYhtb();
});

var jgbm = "";
var dj_jgbm = "";//点进左侧之后获取的编码
var zclsh = "";
var xgDldm = "";  //被修改人的登录代码
var sjptyhtb = "";
var mdmyhtb = "";

/***
 * 获取当前登录机构信息
 * @constructor
 */
function GetDlJgbm() {
    $.ajax({
        type: "GET",
        contentType: 'application/json',
        dataType: "json",
        url: "commonapi/jgbm",
        success: function (jsonData) {
            if (jsonData.code == 200) {
                $("#jgbm").val(jsonData.jgbm);
                $("#jgmc").val(jsonData.jgmc);
                showTable();
                getRoleByJgbm();
            } else {
                LayerWn.showFailAlert(jsonData.msg);
            }
        }
    });
};

/**
 * 初始化用户同步参数
 * */
function initYhtb(){
    $.ajax({
        type: "GET",
        contentType: 'application/json',
        dataType: "json",
        cache: false,
        async: false,
        url: "commonapi/queryQjcs/" + 'plat_sjptyhtb',
        success: function (jsonData) {
            if (jsonData.code == 200) {
                if (jsonData.qjcsEntity != null && jsonData.qjcsEntity.csz == "1") {
                    sjptyhtb = jsonData.qjcsEntity.csz;
                }
            }
        }
    });

    $.ajax({
        type: "GET",
        contentType: 'application/json',
        dataType: "json",
        cache: false,
        async: false,
        url: "commonapi/queryQjcs/" + 'plat_mdmyhtb',
        success: function (jsonData) {
            if (jsonData.code == 200) {
                if (jsonData.qjcsEntity != null && jsonData.qjcsEntity.csz == "1") {
                    mdmyhtb = jsonData.qjcsEntity.csz;
                }
            }
        }
    });
}

/***
 * 界面按钮查询事件
 */
function queryList() {
    showTable();
}

/***
 * 展示数据
 */
function showTable() {
    var jgbm = $("#jgbm").val();
    /*var ryxm = $("#ryxm").val();
    var dldm = $("#dldm").val();
    var rygh = $("#rygh").val();*/
    var gjz = $("#gjz").val();
    var ksbm = $("#ksbm").val();
    var jsmc = $("#ryjs").val();
    var data = {jgbm: jgbm, gjzInfo: gjz, ksbm: ksbm, jsmc: jsmc};
    var columnList = [
        {
            field: 'ryxm',
            title: '姓名',
            align: 'left',
           halign: 'center',
            valign: 'middle',
            width: '120'
        },
        {
            field: 'xb',
            title: '性别',
            align: 'left',
           halign: 'center',
            valign: 'middle',
            width: '120'
        },
        {
            field: 'rygh',
            title: '工号',
            align: 'left',
           halign: 'center',
            valign: 'middle',
            width: '120'
        },
        {
            field: 'dldm',
            title: '账号',
            align: 'left',
           halign: 'center',
            valign: 'middle',
            width: '120'
        },
        {
            field: 'bz',
            title: '所属机构',
            align: 'left',
           halign: 'center',
            valign: 'middle',
            width: '240'
        },
        {
            field: 'zclsh',
            title: '操作',
            align: 'center',
           halign: 'center',
            valign: 'middle',
            width: '150',
            formatter: function (value, row) {
                var ryxm = row.ryxm;
                var rygh = row.rygh;
                var dldm = row.dldm;
                return '<div>' +
                    '<a class="blue btnEdit" href="#" onclick="update(\'' + value + '\')">' +
                    '<i class="btn-eidt-wn " style="font-size: 125%" title="修改"></i></a>' +
                    '<a class="red" href="#" onclick="del(\'' + value + '\')">' +
                    '<i class="btn-del-wn" style="font-size: 125%" title="删除"></i></a>' +
                    '<a class="red" href="#" style="margin-left: 5px" onclick="qxck(\'' + value + '\',\'' + ryxm + '\',\'' + rygh + '\',\'' + dldm + '\')">' +
                    '<i class="btn-view-wn" style="font-size: 125%" title="权限查看"></i></a>' +
                    '<a class="red" href="#" onclick="usermapping(\'' + row.dldm + '\')">' +
                    '<i class="btn-mapping-wn" style="font-size: 125%;" title="用户对照"></i></a></div>';
            }
        }];

    $("#tb1").bootstrapTable('destroy').bootstrapTable({
        url: "user/userlist",
        method: "POST",
        dataType: "json",
        undefinedText: undefinedText,
        striped: true,                      //是否显示行间隔色
        cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
        sortable: false,                     //是否启用排序
        height: $(document).height() - 80,
        //clickToSelect: true,                //是否启用点击选中行
        onClickRow: function (row, element, field) {
            //  $('.info').removeClass('info');//去除之前选中的行的，选中样式
            //  $(element).addClass('info');//添加当前选中的 success样式用于区别
            $('.info_zx').removeClass('info_zx');//去除之前选中的行的，选中样式
            $(element).addClass('info_zx');//添加当前选中的 success样式用于区别
            //  var czryList = $("#tb1").bootstrapTable('getSelections');
            jgbm = row.jgbm;
            dj_jgbm = row.jgbm;
            zclsh = row.zclsh;
            xgDldm = row.dldm;
            getRoleByJgbmRight(row.jgbm, row.zclsh);
        },
        columns: columnList,
        onPostBody: function () {
            //改变复选框样式
            $("#tb1").find("input:checkbox").each(function (i) {
                var $check = $(this);
                if ($check.attr("id") && $check.next("label")) {
                    return;
                }
                var name = $check.attr("name");
                var id = name + "-" + i;
                var $label = $('<label for="' + id + '"></label>');
                $check.attr("id", id).parent().addClass("table-checkbox").append($label);
            });
        },
        pagination: true,                   //是否显示分页（*）
        sidePagination: "server",
        //每页的记录行数（*）
        pageSize: 10,
        //可供选择的每页的行数（*）
        pageList: [10, 20],
        queryParamsType: "",
        queryParams: function queryParams(params) {
            var param = data;
            var PageBean = {
                pageNo: params.pageNumber,
                pageSize: params.pageSize,
                totalRecord: 0,
                totalPage: 0,
                result: [],
                //orderColumn: 'order by t1.mmxgsj desc'
            }
            param.page = PageBean;
            param = JSON.stringify(param);
            return param;
        }
    });
}

$("#tb1").on('load-success.bs.table', function (data) {
    Common.qxGnan();
});


/**
 * 新增用户
 */
function add() {
    var jgbm = $("#jgbm").val();
    var jgxm = $("#jgxm").val();
    if(sjptyhtb == '1' || mdmyhtb == '1'){
        LayerWn.openDialog('用户信息', encodeURI(encodeURI('plat-user-add.html?type=add&jgbm=' + jgbm + '&jgxm=' + jgxm)), 800, 525);
    } else {
        LayerWn.openDialog('用户信息', encodeURI(encodeURI('plat-user-add.html?type=add&jgbm=' + jgbm + '&jgxm=' + jgxm)), 800, 480);
    }
}

/**
 * 修改用户
 */
function update(obj) {
    var jgbm = $("#jgbm").val();
    var jgxm = $("#jgxm").val();
    if(sjptyhtb == '1' || mdmyhtb == '1'){
        LayerWn.openDialog('用户信息', encodeURI(encodeURI('plat-user-add.html?type=update&jgbm=' + jgbm + '&jgxm=' + jgxm + '&zclsh=' + obj)), 800, 525);
    } else {
        LayerWn.openDialog('用户信息', encodeURI(encodeURI('plat-user-add.html?type=update&jgbm=' + jgbm + '&jgxm=' + jgxm + '&zclsh=' + obj)), 800, 480);
    }
};


/**
 * 删除用户
 * */
function del(zclsh) {
    LayerWn.showConfirm("确定要删除吗？", function () {
        $.ajax({
            type: "DELETE",
            contentType: 'application/json',
            dataType: "json",
            url: "user/delUser/" + zclsh,
            success: function (jsonData) {
                if (jsonData.code == 200) {
                    LayerWn.showSucAlert('删除成功');
                    setTimeout(function () {
                        parent.layer.closeAll()
                    }, 1000);
                    showTable();
                } else {
                    LayerWn.showFailAlert(jsonData.msg);
                }
            }
        });
    });
}

/***
 * 权限查看
 */
function qxck(obj, ryxm, rygh, dldm) {
    var url = encodeURI('plat-user-qxck.html?zclsh=' + obj + '&ryxm=' + ryxm + '&rygh=' + rygh + '&dldm=' + dldm);
    LayerWn.openDialog('权限查看', url, 500, 550);
}

/***
 * 业务系统用户映射
 */
function usermapping(dldm){
    var url = encodeURI('plat-user-mapping.html?dldm=' + dldm);
    LayerWn.openDialog('映射业务系统用户', url, 700, 450);
}

/**
 * 批量导入
 */
function pldr() {
    var jgbm = $("#jgbm").val();

    LayerWn.openDialog('医护人员导入', 'plat-user-pldr.html?jgbm=' + jgbm, 800, 480);
}

/**
 * 根据机构查询角色信息
 */
function getRoleByJgbm() {
    var jgdm = $("#jgbm").val();
    $.ajax({
        type: "GET",
        dataType: "json",
        url: "role/rolelistJgyhgl/" + jgdm,
        success: function (jsonData) {
            if (jsonData.code == 200) {   //查询成功
                showRoleList(jsonData.list);
                //初始化角色查询下拉框
                var list = jsonData.list;
                var optionhtml = '<option  value= "">全部</option>';
                if (list.length > 0) {
                    for (var i = 0; i < list.length; i++) {
                        optionhtml += '<option  value= "' + list[i].jsdm + '" >' + list[i].jsmc + '</option>';
                    }
                }
                $('#ryjs').find("option").remove();
                $('#ryjs').append(optionhtml);//所属机构
            } else {
                LayerWn.showFailAlert(jsonData.msg);
            }
        }
    });
}

function getRoleByJgbmRight(jgbm, zclsh) {
    $.ajax({
        type: "GET",
        dataType: "json",
        url: "role/rolelist/" + jgbm,
        success: function (jsonData) {
            if (jsonData.code == 200) {   //查询成功
                showRoleList(jsonData.list);
                //初始化角色查询下拉框
                var list = jsonData.list;
                var optionhtml = '<option  value= ""></option>';
                if (list.length > 0) {
                    for (var i = 0; i < list.length; i++) {
                        optionhtml += '<option  value= "' + list[i].jsdm + '" >' + list[i].jsmc + '</option>';
                    }
                }
                selectRole(zclsh);
            } else {
                LayerWn.showFailAlert(jsonData.msg);
            }
        }
    });
}

/***
 * 根据返回角色数据动态加载角色列表
 */
function showRoleList(roleList) {
    var columnList = [
        {
            field: 'xz',
            align: 'left',
           halign: 'center',
            valign: 'middle',
            width: '60',
            checkbox: true
        },
        {
            field: 'jsdm',
            align: 'left',
           halign: 'center',
            valign: 'middle',
            visible: false,
            width: '60'
        },
        {
            field: 'jsmc',
            title: '角色名称',
            align: 'left',
           halign: 'center',
            valign: 'middle',
            width: '180'
        }];

    $("#roleList").bootstrapTable('destroy').bootstrapTable({
        striped: true,                      //是否显示行间隔色
        cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
        pagination: false,                   //是否显示分页（*）
        sortable: false,                     //是否启用排序
        height: $(document).height() - 136,
        //clickToSelect: true,                //是否启用点击选中行
        sidePagination: "client",
        onClickRow: function (row, element, field) {
            $('.info').removeClass('info');//去除之前选中的行的，选中样式
            $(element).addClass('info');//添加当前选中的 success样式用于区别
        },
        //每页的记录行数（*）
        pageSize: 10,
        //可供选择的每页的行数（*）
        pageList: [10, 20, 50],
        data: roleList,
        columns: columnList,
        onPostBody: function () {
            //改变复选框样式
            $("#roleList").find("input:checkbox").each(function (i) {
                var $check = $(this);
                if ($check.attr("id") && $check.next("label")) {
                    return;
                }
                var name = $check.attr("name");
                var id = name + "--" + i;
                var $label = $('<label for="' + id + '"></label>');
                $check.attr("id", id).parent().addClass("table-checkbox").append($label);
            });
        }
    });
}

/**
 * 保存角色信息
 */
function saveJsqxxx() {
    if (dj_jgbm.length <= 0) {
        LayerWn.showAlert('请先选中一个用户！');
        return;
    }

    var czryList = [{jgbm: dj_jgbm, zclsh: zclsh,dldm:xgDldm}];

    //不同机构不能进行保存
    for (var i = 0; i < czryList.length; i++) {
        if (czryList[0].jgbm != czryList[i].jgbm) {
            LayerWn.showAlert('请选择同一机构的用户！');
            return;
        }
    }


    var jsList = $("#roleList").bootstrapTable('getSelections');
/*    if (jsList.length <= 0) {
        LayerWn.showAlert('请先选中一个角色！');
        return;
    }*/

    $("#btnSave").attr('disabled', true);

    $.ajax({
        type: "POST",
        dataType: "json",
        contentType: 'application/json',
        url: "user/saveUserRole",
        data:
            JSON.stringify({
                "czry": czryList,
                "jsxx": jsList
            }),
        success: function (jsonData) {
            $("#btnSave").removeAttr('disabled');
            if (jsonData.code == 200) {   //查询成功
                LayerWn.showSucAlert('保存成功');
            } else {
                LayerWn.showFailAlert(jsonData.msg);
            }
        }
    });
}

/***
 * 根据点击的用户信息勾选角色信息
 */
function selectRole(zclsh) {
    $('#roleList').bootstrapTable('uncheckAll');
    //查询当前用户的角色列表
    $.ajax({
        type: "get",
        dataType: "json",
        contentType: 'application/json',
        url: "user/getUserRole/" + zclsh,
        success: function (jsonData) {
            if (jsonData.code == 200) {   //查询成功
                var jsbmList = jsonData.list;
                var data2 = $('#roleList').bootstrapTable('getData');
                $(jsbmList).each(function (i, value) {
                    $(data2).each(function (index, item) {
                        if (data2[index].jsdm == value.jsbm) {
                            $('#roleList').bootstrapTable("check", index);
                        }
                    });
                });
            } else {
                LayerWn.showFailAlert(jsonData.msg);
            }
        }
    });
}

/***
 * 选择机构
 */
function selectJg() {
    LayerWn.openDialog("选择机构", "open-jg.html?paramId=jgbm&paramName=jgmc&cdmc=jgyhgl", 500, 400, $('body'));
    getRoleByJgbm();
}
